<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <keep-alive exclude="ComponentA,ComponentB">
        <component :is="currentView"></component>
    </keep-alive>
    <button @click="changeView('A')">切换到A</button>
    <button @click="changeView('B')">切换到B</button>
    <button @click="changeView('C')">切换到C</button>
</div>
</body>
<script src="../../js/vue.js"></script>
<script type="text/javascript">
    Vue.component('ComponentA', {
        template: '<div> 组件 A </div>',
        created() {
            console.log('组件A created')
        }
    })
    Vue.component('ComponentB', {
        template: '<div> 组件 B </div>',
        created() {
            console.log('组件B created')
        }
    })
    Vue.component('ComponentC', {
        template: '<div> 组件 C </div>',
        created() {
            console.log('组件C created')
        }
    })
    var vm = new Vue({
        el: '#app',
        data() {
            return {
                currentView: 'ComponentB'
            }
        },
        methods: {
            changeView(name) {
                this.currentView = `Component${name}`
            }
        }
    })
</script>
</html>
